﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;
using Entidades;
using AjaxControlToolkit;

namespace ProyectoCine.AreaPrivada
{
    public partial class Funcion : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                cargarComboPelicula();
                cargarComboCine();
                txtFechaDesde_CalendarExtender.StartDate = DateTime.Today;              
                txtFechaHasta_CalendarExtender.StartDate = DateTime.Today;               
                
                
            }

        }
        protected void cargarComboPelicula()
        {
            ddlPelicula.DataSource = PeliculaDAO.cargarCombo();
            ddlPelicula.DataTextField = "nombre";
            ddlPelicula.DataValueField = "id_Pelicula";
            ddlPelicula.DataBind();
            ddlPelicula.Items.Insert(0, new ListItem("Todas las Peliculas")); 
        }
        protected void cargarComboCine()
        {
            ddlCine.DataSource = PeliculaDAO.cargarComboCine();
            ddlCine.DataTextField = "nombre";
            ddlCine.DataValueField = "id_Cine";
            ddlCine.DataBind();
            ddlCine.Items.Insert(0, new ListItem("Todos los Cines"));  
        }
        protected void cargarComboCineSala(int idCine)
        {
            ddlSala.DataSource = PeliculaDAO.cargarComboCineSala(idCine);
            ddlSala.DataTextField = "nombre";
            ddlSala.DataValueField = "numero_Sala";
            ddlSala.DataBind();
            ddlSala.Items.Insert(0, new ListItem("Todas las Salas"));
        }

        protected void cargarComboHoraInicio(string diaSemana)
        {
            ddlHoraInicio.DataSource = HorarioDAO.cargarComboHoraInicio(diaSemana);
            ddlHoraInicio.DataTextField = "horario_Inicio";
            ddlHoraInicio.DataValueField = "id_Horario";
            ddlHoraInicio.DataBind();
            ddlHoraInicio.Items.Insert(0, new ListItem("Todos los Horarios"));
        }

        protected void ddlCine_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargarComboCineSala(int.Parse(ddlCine.SelectedValue));
        }

        protected void ddlSala_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblLugaresLibre.Text= PeliculaDAO.obtenerCapacidad(int.Parse(ddlCine.SelectedValue),int.Parse( ddlSala.SelectedValue));
        }

        protected void ddlDiaSemana_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargarComboHoraInicio(ddlDiaSemana.SelectedValue);
        }

        protected void ddlHoraInicio_SelectedIndexChanged(object sender, EventArgs e)
        {
            string horaFin = HorarioDAO.obtenerHoraFin(int.Parse(ddlHoraInicio.SelectedValue));            
            lblHoraFin.Text = "Hora Fin: " + horaFin ;
        }

        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            Entidades.Funcion f = new Entidades.Funcion();
            f.IdPelicula = int.Parse(ddlPelicula.SelectedValue);
            f.IdCine = int.Parse(ddlCine.SelectedValue);
            f.NumeroSala = int.Parse(ddlSala.SelectedValue);
            f.IdHorario = int.Parse(ddlHoraInicio.SelectedValue);
            f.LugaresLibres = int.Parse(lblLugaresLibre.Text);
            f.Precio = double.Parse(txtPrecio.Text);
            DateTime FechaDesde = DateTime.Parse(txtFechaDesde.Text);
            f.Fecha = FechaDesde;
            DateTime FechaHasta = DateTime.Parse(txtFechaHasta.Text);
            TimeSpan Fecha= FechaHasta - FechaDesde;
            int semanas = ((Fecha.Days % 365) % 30) / 7;

            //lblError.Text = semanas.ToString();
            try
            {
                for(int i=0;i<=semanas;i++)
                {
                    
                    FuncionDAO.insert(f);
                    FechaDesde=FechaDesde.AddDays(7);
                    f.Fecha = FechaDesde;                    
                }
               
            }
            catch (ApplicationException ae)
            {
                lblError.Text = ae.Message;
            }           

        }

       
    }
}